import api from './axios';

/**
 * 数据分析相关的API服务
 */
const analyticsService = {
  /**
   * 获取分析数据
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @returns {Promise} - 返回分析数据
   */
  getAnalyticsData: async (startDate, endDate) => {
    const params = {};
    if (startDate) params.start_date = startDate.toISOString().split('T')[0];
    if (endDate) params.end_date = endDate.toISOString().split('T')[0];
    
    return api.get('/analytics/dashboard', { params });
  },

  /**
   * 获取对话趋势数据
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @returns {Promise} - 返回对话趋势数据
   */
  getConversationTrend: async (startDate, endDate) => {
    const params = {};
    if (startDate) params.start_date = startDate.toISOString().split('T')[0];
    if (endDate) params.end_date = endDate.toISOString().split('T')[0];
    
    return api.get('/analytics/conversation-trend', { params });
  },

  /**
   * 获取PUA检测数据
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @returns {Promise} - 返回PUA检测数据
   */
  getPUADetectionStats: async (startDate, endDate) => {
    const params = {};
    if (startDate) params.start_date = startDate.toISOString().split('T')[0];
    if (endDate) params.end_date = endDate.toISOString().split('T')[0];
    
    return api.get('/analytics/pua-detection', { params });
  },

  /**
   * 获取使用情况统计
   * @param {Date} date - 日期
   * @returns {Promise} - 返回使用情况统计
   */
  getUsageByTime: async (date) => {
    const params = {};
    if (date) params.date = date.toISOString().split('T')[0];
    
    return api.get('/analytics/usage-by-time', { params });
  },

  /**
   * 获取最常联系人统计
   * @param {number} limit - 返回的联系人数量
   * @returns {Promise} - 返回最常联系人统计
   */
  getTopContacts: async (limit = 5) => {
    return api.get('/analytics/top-contacts', { params: { limit } });
  },

  /**
   * 获取PUA类型统计
   * @returns {Promise} - 返回PUA类型统计
   */
  getPUATypeStats: async () => {
    return api.get('/analytics/pua-types');
  },

  /**
   * 导出分析数据
   * @param {Date} startDate - 开始日期
   * @param {Date} endDate - 结束日期
   * @param {string} format - 导出格式 (csv, xlsx)
   * @returns {Promise} - 返回导出数据的URL
   */
  exportData: async (startDate, endDate, format = 'csv') => {
    const params = { format };
    if (startDate) params.start_date = startDate.toISOString().split('T')[0];
    if (endDate) params.end_date = endDate.toISOString().split('T')[0];
    
    return api.get('/analytics/export', { params, responseType: 'blob' });
  }
};

export default analyticsService; 